有一題問,想找一份最新、最嚴重的漏洞清單,要去 MITRE 的哪個資料庫查。
我選了 ATT&CK,正解是 CVE。
我那時候只想說CVE不就是串編號嗎,所以就選了"看起來"比較嚴重的ATT&CK,但其實這兩個資料庫的面向不同。
CVE,Common Vulnerabilities and Exposures,講的是「某個產品裡某個具體的洞」。
每個洞給一個編號,Day15 拿去 KEV 搜 Veeam 查到的CVE-2024-40711,就是屬於這個資料庫。
它是一份目錄,他給的資訊是「這個洞存在,編號是這個,還有一些描述」,不管誰拿它做了什麼。
ATT&CK,MITRE 自己的說法是 knowledge base of adversary tactics and techniques based on real-world observations,根據真實觀察整理出來的攻擊者戰術與技術知識庫。
它列的是手法,不是洞。同一個手法可以靠不同的洞達成,也可以完全沒用到任何洞,像是拿偷來的帳號密碼直接登入。而MITRE ATT&CK在考試裡對應到的大概會是TTPs也就是Tactics,Techniques,Procedures。
還有所謂的APT
如果你有上過一些課,看到這張圖應該不陌生
先來說說TTPs,這邊可以看到Tactics從Reconnaissance一路往下到Impact分成好幾個條目
點進去Reconnaissance可以看到畫面中間幫大家圈出來的Techniques,下面的表格就是Reconnaissance相關的Techniques
講完前兩個T之後,這個Procedure,是不會以實際的腳本、程式碼的形式出現在這個網站的
但可以舉一個大家最耳熟能詳的工具nmap,就是一個Active Scanning的Procedure其中一環
至於APT在這網站可以看到甚麼呢?
我們可以選一下上面的CTI->Groups,就可以看到目前知名的APT組織,這邊範例選的是APT1,可以看到是來自中國的軍事組織,甚至連單位名稱都寫出來了,再往下就可以看到他們慣用的TTPs。
可以注意的是,我們說的Threat也就是威脅,有分很多種,像這個是屬於擁有國家資源的APT組織,知道這個對我們防禦有甚麼好處?
有些APT專打基礎設施,有些專打金融機構,有些專打生產設備,那就可以針對自己所在產業別,來去判斷有沒有相關的APT組織,他們都使用甚麼TTP,來去盤點有沒有這些漏洞、該怎麼防範、緩解。
CAPEC,Common Attack Pattern Enumeration and Classification。MITRE 的說明寫它是一份公開的常見攻擊模式目錄,講的是攻擊者怎麼利用應用程式裡的弱點。我就不贅述,直接看圖就知道,裡面由A到Z排列,第一個Absolute Path Traversal就是絕對路徑穿梭
往下看是這個攻擊模式的詳細內容
回到題目本身,問的是洞的"清單",要翻的是 CVE。ATT&CK 是手法的目錄,不是拿來查「這個產品有沒有洞」的地方。
接下來是今天真正的主角,攻擊框架。它們不是 MITRE 的東西,只是 ATT&CK 剛好也是其中一個。
Cyber Kill Chain 是 Lockheed Martin 提出的,把一次入侵切成七個依序發生的階段:
Reconnaissance(偵察)→ Weaponization(武器化)→ Delivery(投遞)→ Exploitation(利用)→ Installation(安裝)→ Command and Control(C2)→ Actions on Objectives(達成目標)
來源:https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html
七個英文我背過好幾次都會卡,後來是改成問「這個動作發生在誰的地盤」。
偵察跟武器化都在攻擊者手上。一個查公開資料,一個把 payload 包好,就算他已經在針對目標客製工具、測試會不會被目標組織所使用的防毒抓到,只要還沒送出去,大致上都還在武器化範圍內。
投遞在路上,Email、隨身碟、惡意網站。
利用跟安裝已經在受害端了,漏洞被觸發、後門被裝進去。
C2 是已經中了之後往外連回去,Day03 講的 beaconing 就是在講這裡。
最後一格是他的目的,資料被帶走、檔案被加密、系統被弄壞。
這樣分有一個好處,防守方碰得到的其實是後面那幾格。前面兩格發生在對方家裡,我們沒辦法直接介入,所以大致上是越前面被擋下來,代價越小。
還有一個我覺得容易誤會的地方。信已經進到收件匣,Delivery 就算完成了;附件沒人開,後面那格 Exploitation 就沒發生。
「信寄到了」不等於「被擋下來了」,要找的是最後一個真的發生的動作,它的下一步才是攻擊停住的地方。
Kill Chain 一共七格,但每一格裡面攻擊者能做的事情其實很多。ATT&CK 就是把那些事情一條一條列出來。
它的矩陣橫向是 tactic(戰術),意思是攻擊者這一步「想幹嘛」,像 Initial Access 是想進來、Persistence 是想留下來。
每個戰術底下是 technique(技術),意思是「怎麼做」,還可以再往下拆成 sub-technique。每一條都有編號,T 開頭。
拿 Day06 講過的範例來對:outlook.exe → excel.exe → procdump.exe。
信裡帶附件,大概是 T1566.001 Spearphishing Attachment,戰術是 Initial Access。
procdump 去抓 lsass 的記憶體,是 T1003.001 LSASS Memory,掛在 OS Credential Dumping 底下。
註記:這是我自己大致上的歸類,如有疑義的話敬請提出讓我知道,先謝謝各位大神。
但可以看出來,同一條攻擊鏈,用 Kill Chain 看是「走到第幾格」,用 ATT&CK 看是「每一步用了甚麼手法、叫甚麼編號」。
前面兩個都在講「攻擊怎麼進行」。Diamond Model 換了一個角度,它是 2013 年 Caltagirone、Pendergast、Betz 三個人提出的,講的是單一一次入侵事件裡有哪幾個角色。
四個頂點:
它比較像事後分析的工具,不是拿來偵測的。招牌用法叫 pivot,意思是手上有一個頂點,就沿著線去找其他頂點。
比方說,拿到一支樣本(Capability),像 Day08 那樣用 strings 撈出裡面寫死的一個網域(Infrastructure),接著可以去查這個網域的註冊資料,看能不能連到敵手的線索,也可以反查還有哪些機器連過它,那些可能是別的受害者。
有哪個頂點還是空的,就代表那邊還不知道,也就是下一步該查的地方。
| 框架 | 它在問甚麼 | 我的理解 |
|---|---|---|
| Kill Chain | 攻擊走到第幾格 | 順序,越前面擋越好 |
| ATT&CK | 攻擊者這一步用了甚麼手法 | 手法的目錄,有編號 |
| Diamond Model | 這次事件的四個角怎麼連在一起 | 事後往外挖線索用 |